package com.ecr.hub.database.dao;

import java.util.List;

import org.springframework.dao.DataAccessException;

import com.ecr.hub.model.composition.Composition;
import com.ecr.hub.model.enumeration.HubWagonTrailer;
import com.ecr.hub.model.rail.Rail;
import com.ecr.hub.model.sillon.Sillon;
import com.ecr.hub.model.wagon.Wagon;
import com.ecr.hub.model.wagon.WagonStatus;
import com.ecr.hub.model.wagon.WagonType;

public interface IDaoHub {

	public List<Wagon> getTraffic() throws DataAccessException;

	public List<Composition> getPlan(Sillon sillon) throws DataAccessException;

	public void updateReverseSense(Sillon sillon) throws DataAccessException;

	public void updateWorkingPlan(List<Composition> lstCompositions)
			throws DataAccessException;

	public List<WagonStatus> getListWagonStatus(HubWagonTrailer trailer)
			throws DataAccessException;

	public List<WagonType> getListWagonTypes(HubWagonTrailer trailer)
			throws DataAccessException;

	public List<Wagon> getListWagonsForRail(Rail rail)
			throws DataAccessException;

	public Wagon getWagonByExtId(String extId) throws DataAccessException;

	public List<Wagon> getListWagonTrafficComposition(Sillon sillon)
			throws DataAccessException;

	public void updateTraffic(List<Rail> lstRails) throws DataAccessException;

	public int insertWagon(Wagon wagon) throws DataAccessException;

	public int historizeTraffic() throws DataAccessException;
}
